home *** CD-ROM | disk | FTP | other *** search
- unit bladeenc;
-
- // http://home8.swipnet.se/~w-82625/encoder/binaries/BladeDLL075.zip
-
- interface
-
- uses Windows;
-
- type
- SHORT = ShortInt;
- PSHORT = ^SHORT;
-
- HBE_STREAM = DWORD;
- PHBE_STREAM = ^HBE_STREAM;
- BE_ERR = DWORD;
-
- const
-
- BE_CONFIG_MP3 = 0;
-
- BE_ERR_SUCCESSFUL = $00000000;
- BE_ERR_INVALID_FORMAT = $00000001;
- BE_ERR_INVALID_FORMAT_PARAMETERS = $00000002;
- BE_ERR_NO_MORE_HANDLES = $00000003;
- BE_ERR_INVALID_HANDLE = $00000004;
-
- BE_MAX_HOMEPAGE = 256;
-
-
- BE_MP3_MODE_STEREO = 0;
- BE_MP3_MODE_DUALCHANNEL = 2;
- BE_MP3_MODE_MONO = 3;
-
- type
- PBE_CONFIG = ^TBE_CONFIG;
- TBE_CONFIG = packed record
- dwConfig: DWord; // Currently only BE_CONFIG_MP3 is supported
- case integer of
- 0: (MP3: packed record
- dwSampleRate: DWord; // 48000, 44100 and 32000 allowed
- byMode: Byte; // BE_MP3_MODE_STEREO, BE_MP3_MODE_DUALCHANNEL, BE_MP3_MODE_MONO
- wBitrate: Word; // 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 and 320 allowed
- bPrivate: Bool;
- bCRC: Bool;
- bCopyright: Bool;
- bOriginal: Bool;
- end);
- 1: (AAC: packed record
- dwSampleRate: DWord; // 48000, 44100 and 32000 allowed
- byMode: Byte; // BE_MP3_MODE_STEREO, BE_MP3_MODE_DUALCHANNEL, BE_MP3_MODE_MONO
- wBitrate: Word; // 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 and 320 allowed
- byEncodingMethod: Byte;
- end);
- end;
-
- PBE_VERSION = ^TBE_VERSION;
- TBE_VERSION = packed record
- // BladeEnc DLL Version number
- byDLLMajorVersion: Byte;
- byDLLMinorVersion: Byte;
-
- // BladeEnc Engine Version Number
- byMajorVersion: Byte;
- byMinorVersion: Byte;
-
- // DLL Release date
- byDay: Byte;
- byMonth: Byte;
- wYear: Byte;
-
- // BladeEnc Homepage URL
- zHomepage: array[0..BE_MAX_HOMEPAGE] of Char;
- end;
-
- var
- beInitStream : function(pbeConfig : PBE_CONFIG;
- var dwSamples : DWORD;
- var dwBufferSize: DWORD;
- var hbeStream : HBE_STREAM
- ): BE_ERR; cdecl;
-
- beEncodeChunk : function(hbeStream : HBE_STREAM;
- xnSamples : DWORD;
- pSamples : PChar;
- pOutput : PChar;
- var pdwOutput : DWORD
- ): BE_ERR; cdecl;
-
- beDeinitStream : function(hbeStream: HBE_STREAM;
- pOutput: PChar;
- var pdwOutput: DWORD
- ): BE_ERR; cdecl;
-
- beCloseStream : function(hbeStream: HBE_STREAM): BE_ERR; cdecl;
-
- beVersion : procedure(var beVersion: TBE_VERSION); cdecl;
-
- function RequestDLLLoading: Boolean;
-
- implementation
-
- var
- BLADEDLL : THANDLE = 0;
-
- function RequestDLLLoading: Boolean;
- begin
- if (BLADEDLL = 0) then
- begin
- BLADEDLL := LoadLibrary('BLADEENC.DLL');
- if (BLADEDLL <> 0) then
- begin
- @beInitStream := GetProcAddress(BLADEDLL,'beInitStream');
- @beEncodeChunk := GetProcAddress(BLADEDLL,'beEncodeChunk');
- @beDeinitStream := GetProcAddress(BLADEDLL,'beDeinitStream');
- @beCloseStream := GetProcAddress(BLADEDLL,'beCloseStream');
- @beVersion := GetProcAddress(BLADEDLL,'beVersion');
- end;
- end;
- Result := (BLADEDLL <> 0);
- end;
-
- initialization
- finalization
- if (BLADEDLL <> 0) then FreeLibrary(BLADEDLL);
- end.
-